package org.aurora.framework.boot.mybatis.flex.processor.data;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

/**
 * name: ClassInfo
 * <p>
 * desc:
 * create date: 2025-03-08 23:02:20
 * </p>
 *
 * @author cao.yong
 */
public class ClassInfo {
    private String tableName;
    private String entityName;
    private String packageName;
    private String className;
    private String classComment;
    private String author;
    private String createDate;
    private Set<ColumnInfo> columns;
    private List<String> queryColumns;

    public ClassInfo() {
        this.columns = new LinkedHashSet<>(0);
        this.queryColumns = new ArrayList<>(0);
    }

    public ClassInfo(String tableName, String entityName, String packageName, String className, String classComment, String author, String createDate) {
        this.tableName = tableName;
        this.entityName = entityName;
        this.packageName = packageName;
        this.className = className;
        this.classComment = classComment;
        this.author = author;
        this.createDate = createDate;
        this.columns = new LinkedHashSet<>(0);
        this.queryColumns = new ArrayList<>(0);
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getEntityName() {
        return entityName;
    }

    public void setEntityName(String entityName) {
        this.entityName = entityName;
    }

    public String getPackageName() {
        return packageName;
    }

    public void setPackageName(String packageName) {
        this.packageName = packageName;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getClassComment() {
        return classComment;
    }

    public void setClassComment(String classComment) {
        this.classComment = classComment;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getCreateDate() {
        return createDate;
    }

    public void setCreateDate(String createDate) {
        this.createDate = createDate;
    }

    public Set<ColumnInfo> getColumns() {
        return columns;
    }

    public void setColumns(Set<ColumnInfo> columns) {
        this.columns = columns;
    }

    public List<String> getQueryColumns() {
        return queryColumns;
    }

    public void setQueryColumns(List<String> queryColumns) {
        this.queryColumns = queryColumns;
    }

    public void addColumn(ColumnInfo column) {
        this.columns.add(column);
    }

    public void addQueryColumn(String queryColumn) {
        this.queryColumns.add(queryColumn);
    }
}
